Classe utilitária para leitura de dados
import java.util.Scanner;
public class Leitura {
private static Scanner teclado = new Scanner(System.in);
public static void limparBuffer() {
if (teclado.hasNextLine()) {
teclado.nextLine();
}
}
// ---------- TIPOS NUMÉRICOS ----------
public static int lerValorInteiro(String mensagem) {
int valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextInt();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
} finally {
limparBuffer();
}
return valor;
}
public static float lerValorFloat(String mensagem) {
float valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextFloat();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
} finally {
limparBuffer();
}
return valor;
}
public static double lerValorDouble(String mensagem) {
double valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextDouble();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
} finally {
limparBuffer();
}
return valor;
}
public static long lerValorLong(String mensagem) {
long valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextLong();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
} finally {
limparBuffer();
}
return valor;
}
public static short lerValorShort(String mensagem) {
short valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextShort();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
} finally {
limparBuffer();
}
return valor;
}
public static byte lerValorByte(String mensagem) {
byte valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextByte();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
} finally {
limparBuffer();
}
return valor;
}
// ---------- TIPOS TEXTUAIS ----------
public static String lerValorString(String mensagem) {
String valor = "";
try {
System.out.print(mensagem);
valor = teclado.nextLine();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
}
return valor;
}
public static char lerValorChar(String mensagem) {
char valor = '\0';
try {
System.out.print(mensagem);
String entrada = teclado.nextLine();
if (entrada.length() > 0) {
valor = entrada.charAt(0);
}
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
}
return valor;
}
// ---------- TIPOS LÓGICOS ----------
public static boolean lerValorBoolean(String mensagem) {
boolean valor = false;
try {
System.out.print(mensagem);
valor = teclado.nextBoolean();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto. Digite true ou false.");
} finally {
limparBuffer();
}
return valor;
}
}